-
Notifications
You must be signed in to change notification settings - Fork 1.6k
s390x: Emit instructions for bitwise FP ops #12232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
s390x: Emit instructions for bitwise FP ops #12232
Conversation
cranelift requires that bitwise operations work across all
data types, including floating point. The prior implementation
of bitwise operations, xor in this example, would cause a panic
with the message:
no rule matched for term aluop_xor
This patch adds lowerings for bitwise operations on floating
point registers using the vector instructions and the vector
register overlay property of the s390x register file.
cfallin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The lowerings here look reasonable but would you mind adding a runtest (or adding s390x to an existing runtest if one exists) as well, to verify?
|
Yes. I'll make sure this is part of a runtest. |
|
So I added a simple test to bitops: which causes pulley to panic: So do I need to fix something in pulley to get this working? |
|
I believe that's because Pulley doesn't implement bitwise fp ops, so you'll want to add a new |
|
Is pulley missing these bitops something that we should track in Issue #12197 ? |
|
Looks like aarch64 has a problem with fp bitops as well. |
pulley and aarch64 omitted as they currently fail this test
8baff06 to
67980be
Compare
|
I removed aarch64 from the fp-bitops test. I'm thinking this should pass now. |
|
Thanks! It's fine I think to leave Pulley out of that issue since it's a much more constrained backend than the others, but thanks for the consideration! |
cranelift requires that bitwise operations work across all data types, including floating point. The prior implementation of bitwise operations, xor in this example, would cause a panic with the message:
no rule matched for term aluop_xor
This patch adds lowerings for bitwise operations on floating point registers using the vector instructions and the vector register overlay property of the s390x register file.
Partially addresses Issue #12197